package com.wang.getEnum.service.impl;

import com.wang.getEnum.domain.EnumInfo;
import com.wang.getEnum.service.IEnumCacheService;
import jakarta.annotation.Resource;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.List;

/**
 * 枚举缓存服务：操作Redis缓存枚举信息
 * @author 86133
 */
@Service
public class EnumCacheServiceImpl implements IEnumCacheService {

    // Redis缓存Key
    private static final String ENUM_CACHE_KEY = "sys:enum:all";

    @Resource
    private RedisTemplate<String, Object> redisTemplate;

    /**
     * 保存枚举信息到Redis
     */
    @Override
    public void setCacheEnums(List<EnumInfo> enumInfos) {
        redisTemplate.opsForValue().set(ENUM_CACHE_KEY, enumInfos);
    }

    /**
     * 从Redis获取枚举信息
     */
    @Override
    public List<EnumInfo> getCacheEnums() {
        Object value = redisTemplate.opsForValue().get(ENUM_CACHE_KEY);
        return value instanceof List ? (List<EnumInfo>) value : List.of();
    }
}
